Signature-based trick determination systems and methods for skateboarding and other activities of motion

ABSTRACT

The invention provides improved devices, systems and methods for skateboarding (and other sporting activities) that monitor motion of a skateboard to identify tricks performed on it by a user. A system according to one aspect of the invention includes (i) a sensing device that is attached (or otherwise coupled) to the skateboard and that measures a physical characteristic of it, and (ii) a data processor that identifies the feat or trick (or other action) performed by or on the skateboard based, at least in part, on correspondence between physical characteristics of motion and/or of the environment measured by the sensing device(s) and a unique signature associated with each of one or more possible tricks.

REFERENCE TO RELATED APPLICATIONS

This application

-   -   claims the benefit of filing of U.S. Application No. 61/514,773,        filed Aug. 3, 2011, entitled “Signature-Based Trick        Determination Systems and Methods for Skateboarding and Other        Activities of Motion,”    -   claims the benefit of filing of U.S. Patent Application No.        61/514,752, filed Aug. 3, 2011, entitled “Devices, Systems, and        Methods for Games, Sports, Entertainment and Other Activities of        Engagement,”    -   is a continuation-in-part of and claims the benefit of filing of        PCT Application No. PCT/US11/46423, filed Aug. 3, 2011, and        published as WO 2012/018914 on Feb. 9, 2012, entitled “Digital        Data Processing Systems And Methods For Skateboarding and Other        Social Sporting Activities,” which, itself claims the benefit of        filing of co-pending, commonly assigned U.S. Patent Application        Ser. No. 61/370,439, filed Aug. 3, 2010, U.S. Patent Application        Ser. No. 61/371,161, filed Aug. 5, 2010, and U.S. Patent        Application Ser. No. 61/386,207, filed Sep. 24, 2010, all        entitled “DIGITAL DATA PROCESSING SYSTEMS AND METHODS FOR        SKATEBOARDING AND OTHER SOCIAL SPORTING ACTIVITIES,”    -   is a continuation of and claims the benefit of filing of U.S.        application Ser. No. 13/197,429, filed Aug. 3, 2011, and        published as US-2012-0116714-A1 on May 10, 2012, entitled        “Digital Data Processing Systems and Methods for Skateboarding        and Other Social Sporting Activities,” which, itself, claims the        benefit of filing of co-pending, commonly assigned U.S. Patent        Application Ser. No. 61/370,439, filed Aug. 3, 2010, U.S. Patent        Application Ser. No. 61/371,161, filed Aug. 5, 2010, and U.S.        Patent Application Ser. No. 61/386,207, filed Sep. 24, 2010, all        entitled “DIGITAL DATA PROCESSING SYSTEMS AND METHODS FOR        SKATEBOARDING AND OTHER SOCIAL SPORTING ACTIVITIES.”

The teachings of all of the foregoing applications and publications areincorporated by reference herein.

This application is related to co-pending, commonly assigned U.S. patentapplication Ser. No. ______, and PCT Application Serial No. ______, bothfiled this same day herewith, and both entitled “Devices, Systems, AndMethods for Games, Sports, Entertainment And Other Activities OfEngagement,” the teachings of both which are incorporated herein byreference.

BACKGROUND OF THE INVENTION

The invention relates to improved systems and methods for skateboardingand other activities of motion—referred to, here, for sake of simplicityand without loss of generality as “sports,” “sporting activities,” andthe like (regardless of whether such activities are so known inconventional parlance) and practitioners of which are referred to, here,as “sports enthusiasts,” and the like. The invention has application infacilitating training of, competition and/or among and like-mindedenthusiasts.

Sports enthusiasts like to learn and perform feats. Skateboarders, forexample, practice tricks over and over, in order to learn new ones andto perfect old ones. To gauge their progress, skateboarders rely on“feel,” guesswork or, better usually, the opinions of others.

Regardless, skateboarders—like other sports enthusiasts—are eager toshare their progress and are always in search of new venues to do so.They may train or show their tricks in skateparks but, more often, theydo so on sidewalks, in driveways, playgrounds, and other spaces thathave not been designed for skateboarding. Unfortunately, they cantypically only display their feats to fellow enthusiasts who are in thesame locale at the same time. For example, a skateboarder who hasperfected a multiple varial heel flip, is usually limited to provinghis/her prowess to friends at the local park. One of them might text or“tweet” news of the feat to others, but that is likely to dismissed asunbelievable, particularly, if the feat is extraordinary. Some of thatdisbelief might be dispelled by posting of a video of the feat, but eventhat may be subject to skepticism.

An object of the invention is to provide improved devices, systems andmethods for skateboarding or other activities of motion (here, again,“sporting activities.”)

A related object is to provide such improved devices, systems andmethods as facilitate training in basic and advanced feats (or“tricks”).

A further related object of the invention is to provide improved suchdevices, systems and methods as can be used to publicize feats ofskateboarders, other sports enthusiasts and others.

A further related object of the invention is to provide improved suchdevices, systems and methods as can be used to facilitate interactionand/or competition among remotely disposed skateboarders, other socialsports enthusiasts and others.

SUMMARY OF THE INVENTION

The foregoing are among the objects attained by the invention, whichprovides in some aspects improved devices, systems and methods forskateboarding (and other sporting activities) that monitor motion of askateboard to identify tricks (feats) performed with, by or on it by auser.

A system according to one aspect of the invention includes (i) a sensingdevice that is attached (or otherwise coupled) to the skateboard andthat measures a physical characteristic of it, and (ii) a data processorthat identifies the feat or trick (or other action) performed by or onthe skateboard based, at least in part, on correspondence betweenphysical characteristics of motion and/or of the skateboard'senvironment measured by the sensing device(s) and a signature associatedwith each of one or more possible tricks.

Further aspects of the invention provide a system, e.g., as describedabove, in which the sensing device—which may be coupled to the operatorand particularly, for example, his/her shoes, etc., instead or inaddition to being coupled to the skateboard—is gyroscopic and/orotherwise measures rotation of the skateboard and/or its operator. Thiscan include, for example, gyroscopic sensors that measure such rotation,preferably along at least two—and, still more preferably, along at leastthree—of x-, y- and z-axes. According to other aspects of the invention,other sensors suitable for detecting rotational and/or other physicalcharacteristics of the skateboard (and/or operator) are used instead orin addition to gyroscopic sensors. These include, by way of non-limitingexample, accelerometers, magnetometers, global positioning sensors,strain sensors, or other sensor(s) capable of indicating speed,acceleration, jerk, yaw, pitch, roll, or other physical characteristicsof the skateboard, its user and/or the its environment.

Further aspects of the invention provide a system, e.g., as describedabove, in which the data processor is coupled to the skateboard and/oroperator, for example, in the form of an add-on or integral module(e.g., in the case of the skateboard) or a clip-on, wearable,pocketable, or carry-along (e.g, in the case of a operator).

Still further related aspects of the invention provide a system, e.g.,as described above, in which the data processor is disposed remotelyfrom the skateboard, yet, coupled for communications with it (and, moreparticularly, for example, the sensing devices). Such a “remote” dataprocessor can be a dedicated device or it can be part a multifunctiondevice, e.g., as in the case of a data processor that is embedded in acell phone, personal digital assistant, or other mobile device(collectively, “mobile device”), that performs other functions, e.g., inaddition to identifying tricks (or other actions) by the skateboardand/or operator.

Further aspects of the invention provide a system, e.g., as describedabove, in which the sensing device communicates with such a remote dataprocessor wirelessly, e.g., via Bluetooth, WiFi, cellular, infrared orother wireless or wired transmission medium, or otherwise. The dataprocessor can optionally log and/or display measurements received fromthe sensor(s), e.g., in addition tricks identified by it based on thosemeasurements. An advantage of such logging is, for example, that itmakes possible validating what tricks and other actions an operatorindeed performed on the skateboard (or other object).

Yet still other aspects of the invention provide a system, e.g., asdescribed above, that includes two (or more) data processors, e.g., onethat is coupled to the skateboard and/or operator, and one that isdisposed remotely. The two (or more) data processors can be coupled forcommunications via wire and/or wirelessly. They may, moreover, shareand/or divide up one or more of the tasks attributed to the “dataprocessor” or “server” in this summary and elsewhere herein. Thus, forexample, according to one such aspect of the invention, a data processorthat is coupled to the skateboard performs trick identifications basedon measurements made by the sensing device and routes thoseidentifications to the remote digital data processor, along withunderlying sensor readings, for further processing by it.

Further aspects of the invention provide a system, e.g., as describedabove, in which the data processor includes and/or is coupled to a table(or other store) that enumerates known tricks (or other actions) andcorresponding signatures, and in which the data processor comparesmeasurements received from the sensor(s) against that table (or store)to identify tricks (or other) actions performed by the operator.

In other aspects, the invention provides a system as described above inwhich the sensing device is attached or otherwise coupled to asurfboard, rollerblade boot, ski, ski boot, surfboard or other object(and/or the operator thereof) in lieu of a skateboard (and/or operatorthereof).

Related aspects of the invention provide a system, for example, asdescribed above, in which the data processor—in addition to or insteadof logging and/or displaying identified tricks and/or the measuredcharacteristics—transmits them to a server digital data processor(“server”), for example, via circuitry and/or other logic provided inthe mobile device of which the data processor forms a part and/or via amodem, network interface card or other circuitry, e.g., in instanceswhere the data processor is a stand-alone device, or otherwise. Suchtransmission can be via Bluetooth, WiFi, cellular, infrared or otherwireless or wired transmission medium, or otherwise.

Further related aspects of the invention provide a system, e.g., asdescribed above, wherein the data processor transmits the identifiedtricks and/or measured characteristics to the server, e.g., along withstill images, video images, location and/or other information associatedwith the trick, measurements, skateboard, it's environment, the user orotherwise. This associated information can be generated by the dataprocessor, a mobile (or other) device of which it forms a part, orotherwise. The location information may be, for example, GPS data and/orit may be identifying information, e.g., phone number, ESN, serialnumber, or so forth.

Further related aspects of the invention provide a system, for example,as described above, in which the server logs the identified tricksand/or measured characteristics, along with still/video images, locationinformation and/or other information, and makes them available foraccess by the aforementioned mobile device and/or by other dataprocessing apparatus, such as, mobile devices, data processors, portablecomputers, desktop computers, and so forth, of otherenthusiasts—including other users (or “operators”) of skateboards,surfboards, rollerblade boots, or other objects (and/or the operatorsthereof).

Still further related aspects of the invention provide a system, forexample, as described above, in which the server makes the identifiedtricks and/or measured characteristics, still/video images, locationinformation and/or other information of the first aforesaid operatoravailable for access via an addressable site on the Internet and/or viaa social networking web site.

Yet still further aspects of the invention provide a system, forexample, as described above, in which the server, data processors,mobile devices, portable computer, desktop computers and/or other dataprocessing apparatus of the first aforesaid operator and/or of the otherenthusiasts facilitate a challenge by one of those other enthusiasts,e.g., to surpass some or all of the identified tricks and/or measuredcharacteristics of the first aforesaid operator, and/or vice versa—e.g.,to engage in a competition.

Related aspects of the invention provide a system, for example, asdescribed above, in which the data processor of a competing enthusiastidentifies tricks and/or collects like information measured by a sensingdevice attached to a skateboard, surfboard, rollerblade boot, or otherobject operated by that enthusiast, and transmits that to the server,e.g., along with still images, video images, location and/or otherinformation collected as above.

Still yet further related aspects of the invention provide a system, forexample, as described above, in which the server, data processors,mobile devices, portable computer, desktop computers and/or other dataprocessing apparatus of the first aforesaid operator and/or of the otherenthusiasts initiate communications to operators when their identifiedtricks and/or measured characteristics have been exceeded by otherenthusiast-operators.

Still yet further aspects of the invention provide a system, forexample, as described above, in which the server, data processors,mobile devices, portable computer, desktop computers and/or other dataprocessing apparatus of the first aforesaid operator and/or of the otherenthusiasts facilitate a live competition among operators.

Other aspects of the invention provide a system, as described above, forexample, that specifies a trick to be performed by the first aforesaidoperator and/or of the other enthusiasts, and that determines if thosetricks were completed successfully. Related aspects allow such anoperator or other enthusiast to select a trick to be performed and thatdetermines if the tricks is completed successfully. Related aspectsprovide such a system that determines a winner as between such anoperator and other enthusiast who perform such specified or selectedtricks.

Still yet further aspects of the invention provide a system, forexample, as described above, in which the server, data processors,mobile devices, portable computer, desktop computers and/or other dataprocessing apparatus of the first aforesaid operator and/or of the otherenthusiasts facilitate display the live competition to otherenthusiasts, e.g., by webcast or otherwise.

Other aspects of the invention provide a system, as described above, forexample, that generates an audio output based on the identified tricksand/or measured characteristic(s) of the skateboard, surfboard,snowboard, ski, rollerblade boot, or other object (and/or the userthereof).

Related aspects of the invention provide a system, as described above,for example, in which the data processor is coupled to an audio outputdevice and that generates an signal for sounding thereon based on aprompt by the user, identification of a trick and/or upon detection ofselected data measured by the sensing device. In related aspect, thedata processor manipulates the audio output based on further prompts bythe user, further trick identification and/or further measuredcharacteristics.

Other aspects of the invention provide a system, as described above, forexample, in which the audio output device is disposed remotely from thedata processor.

Other aspects of the invention provide a system, for example, asdescribed above, in which the data processor executes applicationssoftware providing one or more of the functions that are attributedabove to the mobile device.

Related aspects of the invention provide sensing devices as describedabove, e.g., for coupling to a skateboard, surfboard, rollerblade boot,or other object (and/or the operator thereof) and/or for communicationwith a data processor a described above.

Related aspects of the invention provide a data processor and/or mobiledevice incorporating same as described above.

Related aspects of the invention provide a server, laptop, desktop orother data processor as described above.

Related aspects of the invention provide methods of operating one ormore of the a sensing devices, data processors, mobile device, laptops,desktops and/or server as described above.

BRIEF OF ILLUSTRATED EMBODIMENT

A more complete understanding of the invention may be attained byreference to the drawings, in which:

FIG. 1A-1B depict a system according to the invention for identifyingtricks (or feats) performed on an a skateboard (or other object) and forgenerating, transmitting, and analyzing data relating to othercharacteristic(s) of the skateboard;

FIGS. 2A-2B schematically depicts a sensing device according to theinvention for identifying tricks, generating and transmitting data foruse in the system of FIG. 1;

FIG. 3 depicts an aspect of trick identification in a system accordingto the invention; and

FIG. 4 depicts a table used in trick identification in other systemsaccording to the invention.

DETAILED DESCRIPTION OF THE ILLUSTRATED EMBODIMENT

Despite the multitude of advanced technologies found in the componentsof modern skateboards, very little is dedicated to measuring the tricksthat skateboarders perform. The old adage due to Lord Kelvin, “if youcan't measure it, you can't improve it” applies to skateboarders.

Systems according to the invention comprise hardware and/or softwarethat identifies and measures the feats (e.g., tricks) that skateboardersand enthusiasts of other sporting and nonsporting activities perform.For sake of convenience, and without loss of generality, such systemswill be described in connection with skateboarding in much of thediscussion below, though, it will be appreciated that it can be used inconnection other activities of motion (here, “sporting” activities) aswell.

As will be evident below, there are several uses of systems according tothe invention. They can be used for training skateboarders on newtricks, as well as perfecting old ones. They can be used, as well, to“score” or “rate” particular tricks—whether to test the effectiveness oftraining or as part of a competition.

Unlike the prior art, where a skateboarder's success in mastering a newtrick or in proving competency in an old one is based on the opinion ofothers, systems according to the invention provide unbiased, objectivemeasures. In addition, they provide measures (e.g., trajectory andmotion of the skateboard through space) that can be quantified,visualized, replayed, and compared any number of times, e.g., on acomputer or smartphone and/or over the Internet.

In addition to promoting training and competition, systems according tothe invention help to form and engage a community of skaters (or others)at festival or larger region—even, around the world. Such systems canalso use geolocation to track best scores at a given location, e.g.,over a period of time, so that the winner can be declared the “king ofthe park.”

As noted above, skateboarders, as well as other are eager to share theirprogress and are always in search of new venues to do so. They may trainor show their tricks in skateparks but, more often, they do so onsidewalks, in driveways, playgrounds, and other spaces that have notbeen designed for skateboarding.

Unfortunately, they can typically only display their feats to fellowenthusiasts who are in the same locale at the same time. For example, askateboarder who has perfected a multiple varial heel flip, is usuallylimited to proving his/her prowess to friends at the local hangout. Oneof them might text or “tweet” news of the feat to others, but that islikely to dismissed as unbelievable, particularly, if the feat isextraordinary. Some of that disbelief might be dispelled by posting of avideo of the feat, but even that may be subject to skepticism.

The illustrated embodiment leverages different and uniquecharacteristics of skateboarding and other activities of motion toidentify feats and/or to otherwise generate, analyze and/or exchangeinformation regarding those feats and/or other characteristics of theequipment and the environment in which they are performed.

Architecture (FIG. 1A)

FIG. 1A depicts a system 10 according to one practice of the inventionfor identifying tricks performed on a skateboard 20 and/or for otherwisegenerating, transmitting, and analyzing data pertaining to motion of theskateboard. Other embodiments employing the teachings hereof and withinthe ken of those of ordinary skill in the art may be utilized foridentifying other feats of motion of the user alone or in connectionwith other objects. Non-liming examples of other such objects (and featsof motion) include, inter alia, golf clubs (swing profile), a persondiving off a springboard (rotation rate), or a dog on an agility course(path and speed through weave sticks).

The illustrated system includes one or more sensing devices 40 (alsoreferred to here as measurement devices) that are attached to askateboard 20 and that are in communications coupling with one or moredigital data processors, here, in this drawing, represented by digitaldata processor 60.

Sensing Devices

The sensing devices 40 measure position, motion and/or other physicalcharacteristics of the skateboard 20 and/or its environment. Positionmeasurements can include absolute or relative position (e.g., asdetermined in accord with GPS satellite signals or otherwise), linearlyor in rotation—including, by way of non-limiting example, location,orientation and/or altitude. Referring to the annotated axes 11 shown onFIG. 1A, motion measurements can include linear motion and/or rotationmotion, including, for example:

-   -   1) roll (denoted “R”, in the drawing)—total angular displacement        about the longest principle axis X of the skateboard given        relative positioning of the sensors to the skateboard;    -   2) pitch P—total angular displacement about the second principle        axis Y of the skateboard parallel to the ground when the        skateboard is at rest on its wheels;    -   3) yaw (“W”)—total angular displacement about the principle axis        Z of the skateboard perpendicular to the ground when the        skateboard is at rest on its wheels;    -   4) acceleration—acceleration detected along the longest axis X        of the skateboard;    -   5) initial pitch—the sign of the pitch P detected nearest the        start point of the data window.

In the drawing, that sign is indicated by “+” and “−” signs adjacentends of the curved arrow denoting the pitch P.

Other motion measurements can include speed, jerk, among others. Othercharacteristics of the skateboard can include orientation of theoperator/user, weight of the operator/user and/or other forces andstrains on the skateboard, temperature and windspeed, all by way ofnon-limiting example.

The sensing devices 40 can comprise conventional sensors of the type formeasuring linear and/or rotations position and/or motion known in theart, as adapted in accord with the teachings hereof. Thus, for example,the devices 40 may comprise GPS sensors, accelerometers, gyroscopes,magnetometers, temperature sensors, strain sensors, optical sensors,acoustic sensors, RFID (radio frequency identification) and so forthembodied in microelectromechanical systems (MEMS) or otherwise, and allas adapted in accord with the teachings hereof. For example, in someembodiments, optical sensors are utilized alone—or, for example, withLED lasers or other light-emitting devices—to facilitate detecting whenthe skateboard 20 is engaged in a “grind.” By way of further example, insome embodiments, an RFID receiver chip attached to the skateboard 20can be used in conjuction with an RFID transmitter chip attached to theuser's shoes (or elsewhere) to facilitate (i) identification and/ororientation of the user.

Placement

The sensing devices 40 can be coupled to any portion of the skateboard20—though, in some embodiments, placement is dictated by several factorsrelated to standard use cases: where on the board will the sensingdevices experience the least damage, what is least intrusive to theskateboarding experience, and what is most aesthetically pleasing.

Significantly, placement is also dictated by location(s) that facilitatemeasurement by sensing devices 40 (e.g., accelerometers) that are bestinterpreted by data processor 60 to identify tricks performed on askateboard (and/or to otherwise provide for the meaningful generation ofdata pertaining to the skateboard). In this regard, placement can bemade in accord with an analytic solution to the three coupleddifferential equations for rigid body motion known as Euler's equations.Precise placement in this regard is not critical, however, since the setof motions that constitute skateboard tricks is sufficiently limited toadmit coarser methods of distinction (and, hence, allowing more weightto be given to the other placement factors).

By placing the sensing devices on the skateboard asymmetrically alongits longest principle axis and approximately symmetrically along theremaining two principle axes one can sense the centrifugal accelerationin the rotating frame necessarily experienced when the skateboardrotates about a nonprinciple axis during a trick. This hinges on howlimited the class of rigid body motions that constitute tricks is: anytrick that does not rotate solely about a principle axis necessarily haslargest angular velocity in roll and registers non-zero angular velocityabout all three principle axes for the duration of a trick. In thestandard language of skateboarding the first of these characterizationsis tantamount to saying that if two tricks that rotate about a singleprinciple axis are combined, one of them will be a kickflip or aheelflip.

This partially symmetric placement of sensors can be used to detectcentrifugal acceleration of the skateboard 20 (or other object) alongits longest principle axis, which in turn is useful in developing amyriad of coarse yet unambiguous classifications of rigid body motion.The outlined sensor placement criteria has broad application in manyfields outside of skateboarding. Indeed, any activity of motioninvolving a rigid body that has a distinctly long principle axis wouldbenefit from this scheme in tracking and classifying rigid body motion.

Riser Pad (FIG. 1B)

Referring to FIG. 1B, the sensing devices 40 can be embedded, mounted orotherwise fixed to the trucks 26, which connect wheels 28 to deck 22.Alternatively, the devices 40 can be affixed to a surface of the deck 22or elsewhere on the skateboard.

Regardless, the sensing devices are preferably mounted to the skateboard20 in a manner that achieves the desired placement while, at the sametime, (i) protecting the devices 40 from damage as the skateboard isstepped upon, grinded and/or slammed during use (e.g., jumped upon bythe user, grinded against stair rails, slammed against curbs, and soforth), (ii) permitting access to batteries, sensors and associatedlogic of the sensing devices 40, (iii) permitting transmission ofwireless signals to/from the sensing devices, e.g., without requiringsignal penetration through the truck 26, which is typically metal,and/or (iv) permitting recharging of batteries for the devices 40,uploading of data and/or control software, and/or downloading of data.

A riser pad 24 that achieves the foregoing is illustrated in FIG. 1B.This pad 24, which is generally of a “clamshell” design, includes a baseportion 24A, a body portion 24B, and a cover 24C. Those portions may behinged to one another, as shown in the drawing, though this is not thecase of all embodiments. And, while the cover 24C is preferablyremovable from the other portions 24A, 24B, those other portions may,indeed, be formed as one.

In the illustrated embodiment, the pad 24 is mounted in a cavity 22A ofthe deck 22 such that the cover 24C is accessible from the top of thedeck (i.e., the side opposite the deck from the truck 26 and wheels 28)and such that the base 24A is accessible—and, preferably, stands proudfrom—the bottom of the deck 22. The latter permits, in some embodiments,mounting of the truck 26 to the base 24A and, in some embodiments,exposes a port (not shown here), e.g., a charging port and/or data port,for access by the operator when the board 20 is not in use.

Consistent with the discussion above, the pad 24 and, particularly, thebody portion 24B thereof are disposed within deck 22 such that sensingdevices 40 mounted within the pad 24 are disposed asymmetrically alongthe longest principle axis X of the skateboard, while beingapproximately symmetrically disposed along the remaining two principleaxes Y, and Z, as shown. Though shown in an open configuration in thedrawing, during normal use of the skateboard 20, the body of spacer 24is disposed in recess 22A and is closed.

Portions 24A, 24B may be formed of metal, plastic, wood, carbon fiber orother material of suitable durability, e.g., for permanent orsemipermanent affixation in deck 22 and for mounting of truck 26, asshown if FIG. 1A. Cover 24C is preferably formed of plastic, wood orother material sufficiently durable to withstand pounding, rubbing orother contact by the the operator, yet, which does not interfere withwireless communications, e.g., to/from sensing devices 40 disposedwithin the pad 24. The various portions 24A-24C preferably includesseals, e.g., O-rings, or the like, that prevent water, dirt and othercontaminants from entering the body and, thereby, fouling sensingdevices 40 therein.

Multiple Sensing Devices

In some embodiments, more than one array of sensing devices 40 are becoupled to the skateboard to allow for additional data to be generatedregarding the characteristic(s) of interest. For example, a skateboard20 can have sensing devices, e.g., in spacers 24 that reside above thetrucks of both the front and back wheels. In fact, in some embodiments,one or more of those sensing devices 40 is disposed on the user/operatorof the skateboard, e.g., on a shoe, boot, sock, pant leg, belt,backpack, and so forth, in order to provide further data for identifyingtricks performed on a skateboard and/or for otherwise generating,transmitting, and analyzing data pertaining to motion of the skateboard.

Digital Data Processor 60

The sensing devices 40 communicate collected measurements to one or moredigital data processors—here, depicted as digital data processor 60—foranalysis, logging, display and/or retransmission to other devices.

The data processor(s) can comprise a dedicated device, such as adedicated microprocessor (or “controller”) that is embedded with thesensing devices 40, e.g., on the skateboard 20, and/or that is housedseparately from the sensing devices albeit coupled for communicationsvia Bluetooth, WiFi, cellular, infrared or other wireless or wiredtransmission medium, or otherwise. An example of the former ismicroprocessor 44 of FIG. 2. An example of the latter is the digitaldata processor 60 shown in FIG. 1 and discussed, e.g., in the sectionbelow entitled “Digital Data Processor.”

Alternatively, or in addition, the data processor(s) 60 can be part amultifunction device, e.g., as in the case of a data processor that isembedded in a cell phone, personal digital assistant, or other mobiledevice (collectively, “mobile device”) and that is in communicationscoupling (again, for example, via Bluetooth, WiFi, cellular, infrared,or other wireless or wired transmission medium, or otherwise) with thesensing devices 40 and/or another data processor (e.g., an embeddedmicroprocessor) that is itself in communications coupling with thosedevices 40.

Sensing Device—Packaging (FIG. 2)

As noted above in connection with FIG. 1, the sensing devices 40 cancomprise conventional sensors of the type known in the art for measuringposition, motion and/or other physical characteristics of the skateboard20 and/or its environment, as adapted in accord with the teachingshereof. Thus, for example, the devices 40 may comprise GPS sensors,accelerometers, gyroscopes, magnetometers, temperature sensors, strainsensors, and so forth, embodied in microelectromechanical systems (MEMS)or otherwise, and all as adapted in accord with the teachings hereof.

Referring to FIG. 2A, the sensing devices 40 of the illustratedembodiment comprise linear accelerometer sensor 40 a and rotationalsensors 40 b-40 d for measuring, respectively, acceleration along thelongest axis X of the skateboard 20; roll (angular displacement aboutaxis X), pitch (angular displacement about axis Y) and yaw (angulardisplacement about axis Z). As noted above, other embodiments may useother sensors, e.g., GPS sensors, magnetometers, temperature sensors,strain sensors, instead or in addition.

Illustrated sensing devices 40 may form part of an inertial measurementunit or otherwise, and they may be fabricated embodied inmicroelectromechanical systems (MEMS) or otherwise. In one embodiment,the rotational sensors 40 b-40 d are embodied in an STMicroelectronicsL3G4000D three-axis angular rate sensor, while sensor 40 a is embodiedin an Analog Devices ADXL345 three-axis accelerometer. These, however,are design choices, from which others skilled in the art may vary inaccord with the teachings hereof.

Packaged with the sensors 40 a-40 d of the illustrated embodiment aremicroprocessor 44, battery 46, and wireless communication module 48.Together with an appropriate substrate and supporting circuitry, thesecomponents form a printed circuit board (PCB) 42 that, in theillustrated embodiment, has a form factor of the type as shown in FIG.2B—a more complete understanding of which PCB may be attained byreference to the schematic of Appendix I hereto. Of course, otherembodiments may package these components in other ways—e.g., on PCBs ofother configurations, on chipsets, in separate PCBs, and otherwise).

While not shown in the illustrated embodiment, the sensing devices canadditionally include a pressure sensor (based on piezo-electric orotherwise). This can be housed on PCB 42, though, more typically, it ismounted directly to deck 22 in order to detect when there is a user onthe skateboard 20, when the user is landing on the board (e.g., after ajump), when the user and board are both in free-flight and/or when theuser falls off the board. Output from the pressure sensor can be used inconnection with trick determination, e.g., along the lines discussedbelow and/or it can be reported (directly or by way of microprocessor44) to digital data processor 60 as another “measured characteristic” ofthe board 20.

The device 42 also include an audio output (not shown) that generates anaudio signal (e.g., a song and/or sound or series of sounds), e.g., inthe manner of the audio output discussed below in connection withdigital data processor 60 or otherwise.

Battery

Battery (or other power source) 48 provides power for operation of unit42 and/or the constituent elements thereof. This is a conventionalbattery (or other power source) of the type known in the art forhousehold or light industrial use, though other batteries and/or powersources may be used as well or in addition—all as adapted in accord withthe teachings hereof. Suitable batteries include, for example, alkaline,nickel-metal hydride, nickel-cadmium, lithium, carbon zinc, and soforth. Preferably battery 48 is rechargeable and/or removable (e.g., viaopening of riser cover 24 c).

In the illustrated embodiment, battery 48 may be recharged (and itscharge, for example, checked) via application of power to a USB port onunit 42, access to which may be gained via the base 24 a or cover 24 cof the riser 24. (That access may be covered, e.g., by a removable plugor otherwise to prevent contamination). In other embodiments, rechargingmay be provided for via a standard power adapter port, via inductivecharging or otherwise.

Communication Module 46 Enables the Transfer of Software

Communication module 46 enables the transfer of software (e.g., forpurposes of reprogramming the unit 42), control parameter and/or databetween the unit 42 (and, particularly, for example, the sensors 40 a-40d and/or microprocessor 44) and external devices, e.g., digital dataprocessor 60. The module 46 can support wired transfers, e.g., via theaforementioned USB port or otherwise. In preferred embodiments, itsupports wireless transmissions, instead or in addition. This caninclude Bluetooth, WiFi, cellular, infrared or other wireless protocols.

Module 46 can be constructed and operated in the conventional mannerknown in the art suitable for supporting the aforesaid and other wiredand wireless protocols—as adapted in accord with the teachings hereof.

Software of the type suitable for execution by microprocessor 44 toeffect operation of module 46 of the illustrated embodiment is providedbelow. It will be appreciated that this represents but one technique forconfiguring the microprocessor 44 to support such operation and thatother techniques so configuring the microprocessor are within the scopeof the invention.

# IMUcommBT.py # # Communicates with IMU through Bluetooth RFCOMM, logsdata to files, # Parses comma-separated, new-line/carriage-returndivided lines of raw IMU sensor data # has very basic error detectionand alignment and circular buffering import bluetooth import time importstring import numpy as np def get_user_selection_of_BT_address( ): print“Searching for discoverable Bluetooth devices...” nearby_devices =bluetooth.discover_devices( ) if nearby_devices == [ ]: print “Found nodiscoverable Bluetooth devices!” return None print “(Number) Name;Address” for n in range(len(nearby_devices)): print ‘(‘ + str(n) + ’.)‘ + \  bluetooth.lookup_name(nearby_devices[n]) + ’; ’ + \ nearby_devices[n] print “ ” defget_user_number_input(number_of_devices, selection = [ ]): if selection!= [ ]: print ‘\’‘ + str(selection) + ’\‘‘ + ’ is an invalid selection.’device_number = raw_input(‘Connect to (enter number): ’) ifint(device_number) in range(number_of_devices): return device_numberelse: get_user_number_input(number_of_devices, device_number)device_number = get_user_selection(len(nearby_devices)) returnnearby_devices[device_number] # connect to IMU and return IMU Bluetoothsocket def getIMUsocket(address = ‘00:06:66:42:21:85’): sock =bluetooth.BluetoothSocket(bluetooth.RFCOMM) #alt_address =raw_input(‘Enter imu\'s Address(Default: ‘ + address + ’):’) #ifalt_address != ‘’: # address = alt_address #nearby_devices =bluetooth.discover_devices( ) #if address in nearby devices:  # print‘Connecting to ’ + bluetooth.lookup_name(address) + “...”sock.connect((address, 1)) #sock.setblocking(True) return sock #else: #print “Could not connect to device with address ” + address + “.”  #return None # returns Bluetooth buffer's raw data def getPacket(socket):return socket.recv(1024) # parses new sensor data into co-temporal setsdef parseIMUdata(rawdata): max_lines = 40 bufList =string.replace(string.replace(rawdata,‘AN:‘,’’),‘!ANG:‘,’’).split(‘\r\n’) line = np.zeros((max_lines,7)) # elements in a complete line =>7 num_lines = len(bufList) if rawdata[−1] != ‘\r\n’: num_lines =num_lines − 1 for i in range(num_lines): tmpLine = bufList[i].split(‘,’)try: line[i,0] = int(tmpLine[3]) line[i,1] = int(tmpLine[4]) line[i,2] =int(tmpLine[5]) line[i,3] = int(tmpLine[6]) line[i,4] = int(tmpLine[7])line[i,5] = int(tmpLine[8]) line[i,6] = int(tmpLine[9]) except:line[i,0] = 0 return [num_lines, line] ##def parse(rawdata): ##max_lines = 256 ## bufList = rawdata.split(‘\r\n’) ## line =np.zeros((max_lines,7)) ## num_lines = len(bufList) ## for i inrange(num_lines): ## try: ## data_array = np.fromstring(bufList[i],dtype=np.uint8) ## #data_array = bytestring(bufList[i]) ## line[i,0] =2**32*data_array[0] + 2**16*data_array[1] + 2**8*data_array[2] +data_array[3] ## line[i,1] = 2**8*data_array[4] + data_array[5] ##line[i,2] = 2**8*data_array[6] + data_array[7] ## line[i,3] =2**8*data_array[8] + data_array[9] ## line[i,4] = (2**8*data_array[10] +data_array[11]) − 2**12 ## line[i,5] = (2**8*data_array[12] +data_array[13]) − 2**12 ## line[i,6] = (2**8*data_array[14] +data_array[15]) − 2**12 ## except: ## line[i,0] = 0 ## return[num_lines, line] def parse(rawdata): bufList =rawdata.split(‘\r\n\r\n’) num_lines = len(bufList) line =np.zeros((num_lines,7), np.int32) for i in range(num_lines): try: if(len(bufList[i])==16): data_array = np.fromstring(bufList[i],dtype=np.uint8) # timestamp line[i,0] = 2**32*data_array[0] +2**16*data_array[1] + 2**8*data_array[2] + data_array[3] # gyroscopedata line[i,1] = 2**8*data_array[4] + data_array[5] line[i,2] =2**8*data_array[6] + data_array[7] line[i,3] = 2**8*data_array[8] +data_array[9] # accelerometer data line[i,4] =(2**8*data_array[10] +data_array[11]) − 2**12 line[i,5] =(2**8*data_array[12] +data_array[13]) − 2**12 line[i,6] =(2**8*data_array[14] +data_array[15]) − 2**12 else: line[i,0] = −1 except : line[i,0] = −1return [num_lines, line] # Open and return IMU log file object defopenIMUlogfile(filepath = ‘.//’ + time.strftime(‘%Y%m%dT%H%M%S’)+ ‘i-mu.txt’): alt_filepath = raw_input(‘Enter filepath (Default: ‘ +filepath + ’)’) if alt_filepath != ‘’: filepath = alt_filepath returnopen(filepath, ‘w’)

Microprocessor

Illustrated microprocessor 44 controls and/or configures the unit 42and/or the constituent elements thereof. The microprocessor 44 canperform any number of functions, as will appreciated by a person skilledin the art, depending on the particular application for which thesensing devices 40 are used. By way of non-limiting example, themicroprocessor 44 can power-up, power-down, “sleep,” reset, pair/unpair,and/or set operational parameters (including, level setting) for unit42, module 46 and/or sensors 40 a-40 d. By way of further example,microprocessor 44 can effect software, control parameter and/or datatransfer between digital data processor 60 and unit 42, module 46 and/orsensors 40 a-40 d.

Thus, for example, in order to extend the life of the battery 48, themicroprocessor 44 can configure sensing devices 40 and/or communicationsmodule 48 to enter sleep mode during non-use or inactivity, e.g., if thecommunication module 46 is unable to connect to the digital dataprocessor 60 for a pre-determined time (e.g., five minutes), in responseto a command from that processor 60, in response to a user deactivationcommand (e.g., a triple-tap on the skateboard 20). And, by way offurther example, the microprocessor 44 can configure the communicationsmodule 48 to operate in lower power mode when practical. To furtherextend battery 48 life, the microprocessor 44 preferably activates thesensing devices 40 independently of the communication module.

As will be appreciated by those skilled in the art, various ones of thecontrol and/or configuration operations attributed to the microprocessor44 may be handled via other functionality in the module 42. Thus, forexample, one or more parameters may be burned into read-only memorymodules (not shown) provided with the unit 42, may be “hardwired” intocircuitry of the PCB, or otherwise, all consistent with the teachingshereof.

By way of further example, microprocessor 44 can perform dataconditioning (e.g., normalization), data reduction, data compression andother preprocessing of data from sensors 40 a-40 d before it is sent todigital data processor 60. It can also detect fault in operation of theunit 42, module 46 and/or sensors 40 a-40 d, forcing notification todigital data processor 60 and/or to an operational LED and/or displaypanel (not shown) and/or audio output of unit 42 in case of suchdetection.

In some embodiments, processing of data generated by sensors 40 a-40 dis the province of separate digital data processor 60. However, in theillustrated embodiment, microprocessor 44 performs one or more of thosetasks—and particularly, by way of non-limiting example, the processingof data generated by those sensors to identify tricks (or other feats)performed on the skateboard 20 (or other object).

The illustrated microprocessor 44 also performs control associated withsuch trick (feat) identification. This includes, by way of example,powering-up or waking the sensors 40 a-40 d in response to useractivation—e.g., double-tapping of the skateboard 20 by the user. Thisalso includes, by way of example, detecting trick (or feat) start, e.g.,based on jerk detection or other characteristic changes in forces ormotions measured by the sensors. And, it includes by way of example,uploading the identity of detected tricks to the digital data processor60, e.g., along with underlying or other sensor readings.

In this latter regard, for example, the microprocessor 44 can effectuploading of the identity of an identified trick to the digital dataprocessor 60, along with position information from a GPS sensor (notshown), time/date information from an onboard clock (not shown), max/minvelocity and acceleration readings sensor 42 a, and so forth—all by wayof example. By way of further example, microprocessor 44 can effectuploading of a log of collected sensor readings, if it is unable toidentify therefrom a particular trick—or, in some embodiments, even ifit is able to identify a trick. An advantage of such logging is, forexample, that it makes possible validating what tricks and other actionsan operator indeed performed on the skateboard (or other object).

Instead of, or in addition to, uploading trick identity and/orunderlying or other sensor readings, the microprocessor can effectnotification when pre-selected trick(s) or feats—such as, in the case ofskateboard 20, an “Ollie”—is/are identified. Such notification can betransmitted to the digital data processor 60. Alternatively or inaddition, such notification can be effected via an alert to theaforementioned operational LED and/or display panel (not shown) of unit42, to the aforementioned audio output, or otherwise. Indeed, such anotification can be transmitted or otherwise effected when the processordetects an attempted, but failed, trick.

Trick Detection

As noted above, in the illustrated embodiment microprocessor 44processes of data generated by those sensors 40 to identify tricks (orother feats) performed on the skateboard 20 (or other object). Anappreciation of this may be attained by reference to the discussion thatfollows, as well as that provided elsewhere herein. Though attributed tomicroprocessor 44, it will appreciated that trick (feat) detection canbe performed by digital data processor 60 or other functionality, all inaccord with the teachings hereof.

In the illustrated embodiment, the microprocessor 44 begins trickidentification with processing data from the gyroscopes 40 b-40 d andaccelerometers 40 a is to determine what segment, or “data window”, of adata stream to compare against what an expected trick signature (i.e.,what a trick is expected to look like in terms of sensor data).

In order to locate such data windows, the illustrated microprocessor 44first sets a threshold for angular displacement. If the magnitude ofangular displacement sensed by the gyroscopes is beyond this thresholdabout any axis, microprocessor 44 considers this a potential start pointof a data window in which to identify tricks.

To determine a potential end point of a data window, the microprocessor44 sets a separate threshold on the rate of change of angulardisplacement. This relies on the assumption that when a trick is landedthe skateboard 20 suddenly stops rotating (e.g., when it is “caught” bythe user); this causes sharp fluctuations in angular displacement data.

Once a start point and end point have been identified, a final step inidentifying a data window is to check that a “reasonable” amount of timehas passed from the start point to the endpoint. Again, microprocessor44 sets a threshold on the difference of the time stamp on a potentialend point and the time stamp on a potential start point. If thisdifference is greater than the time threshold, then microprocessor 44proceeds to compare the data in the identified data window to thesignature of what is expected for each trick.

In the illustrated embodiment, there are n salient features of gyroscopeand accelerometer data used to identify tricks, and each trick isassigned a collection of n-tuples. Each n-tuple assigned to a particulartrick is considered a signature of that trick. If one of the signaturesof a trick appears in a data window, that trick is registered asdetected.

Referring back to FIG. 1, in the illustrated embodiment, illustratedfeatures include:

-   -   1) roll (denoted “R”, in the drawing)—total angular displacement        about the longest principle axis X of the skateboard given        relative positioning of the sensors to the skateboard;    -   2) pitch P—total angular displacement about the second principle        axis Y of the skateboard parallel to the ground when the        skateboard is at rest on its wheels;    -   3) yaw (“W”)—total angular displacement about the principle axis        Z of the skateboard perpendicular to the ground when the        skateboard is at rest on its wheels;    -   4) acceleration—acceleration detected along the longest axis X        of the skateboard;    -   5) initial pitch—the sign of the pitch P detected nearest the        start point of the data window.

In the drawing, that sign is indicated by “+” and “−” signs adjacentends of the curved arrow denoting the pitch P.

Each of these features, or “parameters,” is bounded by thresholds andhas between three and six modes. Referring to FIG. 3, the gray areasindicate the thresholds within which a given trick rotating about thelongest principle axis (having roll) would be recognized.

Each of these parameters assumes a value specifying what range, giventhreshold, certain aspects of gyroscope and accelerometer data fall in.Each combination of values for each parameter unambiguously specifies athe type of motion a skateboard has undergone during a data window,whether it be a trick or not.

Parameter (1) reflects how much roll, if any, the skateboard rotatesthrough during the data window. Practically, this is measuring how muchkickflip or heelflip has happened during a trick. Notice that any trickthat does not rotate primarily about a principle axis necessarily hassome non-zero roll. Also, the skateboard rotates most easily about itslongest principle axis, since the skateboard has the smallest moment ofinertia in this dimension. For these reasons, parameter (1), unlikeparameters (2) and (3), is useful for identifying and differentiatingtricks that rotate about a single principle axis (namely the longestaxis of the skateboard) and tricks that combine rotations about morethan one principle axis, such as a varial flip or a 360 flip. Theangular velocity in roll is roughly constant for the bulk of a givendata window, and the thresholds on parameter (1) determine practicallyhow many kickflip or heelflip rotations have occurred during the courseof trick.

Parameter (2) is similar to (1), but reflects the amount of pitch theskateboard rotates through during the data window. Parameter (2) differsfrom (1) in that it is only useful in determining if rotation about asingle principle axis is enough for a trick to have been completed.Practically, this amounts to determining whether a data window containsdata for an impossible or a front foot impossible. Tricks that rotateabout a non-principle axis do make gyroscopes register pitch, but in anon-obvious way. This behavior is addressed by parameter (4).

Parameter (3) is entirely similar to parameter (2), save that theinformation it encodes is the angular displacement about the thirdprinciple axis, or yaw. Practically this amounts to to determiningwhether a data window contains data for a shuvit, frontside or backside,and how much. Again, for tricks that rotate about a non-principle axisyaw exhibit non-obvious behavior and captured by parameter (4).

For tricks that rotate about a non-principle axis, as reasoned above,rotation about the longest principle axis happens the fastest. Since thegyroscopes are fixed to the skateboard, this means that during thecourse of a trick the angular velocity registered by the sensors about,say, the principle axis corresponding to yaw will exhibit sinusoidalbehavior; likewise for pitch. This makes physical sense, yet confoundsthe intuition of the typical skateboarder. For example, conventionally avarial flip is described as 360 degrees of roll (a kickflip) combinedwith 180 degrees of yaw (a shuvit). However, gyroscope data taken duringthe course of a varial flip results in roughly 360 degrees of roll andtwo out of phase sinusoids for pitch and yaw. Difficulty arises when onetries to distinguish tricks which conventionally differ by a 180 degreerotation in yaw, for example the varial flip and the 360 flip (360degrees in roll and 360 degrees in yaw). The “shape” of the gyroscopedata is roughly the same, and differs mostly in the amplitudes of thesinusoids. These amplitudes do not readily yield to the same methods ofsetting thresholds using in parameters (1)-(3). Instead, here themicroprocessor 44 exploits the asymmetric position of the sensors on theskateboard to detect centrifugal acceleration.

Parameter (4) reflects the accelerometer data from the longest axis ofthe skateboard. The accelerometer experiences a centrifugal accelerationthat is proportional to the square of the angular velocity registered inpitch and yaw by the gyroscopes, as exemplified by the relations below:

v=r*Ω

a=v ^(2/) r

a=r ²*Ω² /r

In this way, the difference tricks intuitively described as being a 180degree rotation in yaw different becomes clear. Notice that if thesensors were placed symmetrically on the body, no centrifugalacceleration would be measured and such a scheme of detection would beimpossible.

Parameter (5) reflects the initial direction of pitch: either positive,negative or zero. Practically, this determines the “stance” from which atrick is executed, either regular (negative) or nollie (positive) or thetrick does not pop off the ground (zero).

Code

Software of the type suitable for execution by microprocessor 44 toeffect trick detection in accord with the foregoing is provided below.It will be appreciated that this represents but one technique forconfiguring the microprocessor 44 to support such detection and thatother techniques so configuring the microprocessor are within the scopeof the invention.

Software of the type suitable for execution by microprocessor 44 to testoperation of a module 42 constructed in accord with the teachings hereofis provided below. It will be appreciated that this represents but onetechnique for configuring the microprocessor 44 to support such testingare within the scope of the invention.

# test.py # #!/usr/bin/python import socket from IMUcommBT import * fromTrickRec import * from math import * import time import numpy as npimport string plot_windows = False save_buffers = False bufsize = 256address = ‘00:06:66:42:94:8E’ print “connecting to flyriser...”IMU_Socket = getIMUsocket(address) print “done.” defflushBluetoothBuffer( ): IMU_Socket.recv(1000000) def main( ): ##calibrate initial sensor offsets IMU_Socket.send(“1”)flushBluetoothBuffer( ) print “ ” print “calibrating flyriser...putboard into upright resting position.” omega_test, accel_test = True,True buffers = fillBuffers(IMU_Socket, bufsize) omega_test, accel_test =testInitialConditions(buffers) while not(omega_test and accel_test):buffers = fillBuffers(IMU_Socket, bufsize) omega_test, accel_test =testInitialConditions(buffers) print “board is either not upright or ismoving!!!” ave_dt, ave_omega, ave_accel = getAverages(buffers) print“done.” print “ ” IMU_Socket.send(“0”) IMU_Socket.send(“1”)flushBluetoothBuffer( ) while True: buffers = updateBuffers(IMU_Socket,buffers, 1) offset_buffers = subtractAverages(buffers, ave_omega,ave_accel) trick_length, trick_start = detectWindow(offset_buffers)if(trick_length != 0): IMU_Socket.send(“0”) start, end = trick_start,trick_start + trick_length interp_time buffer, interp_omega_buffer,interp_accel_buffer = interpolateBuffers(offset_buffers) omega_window =np.zeros((3, trick_length)) accel_window = np.zeros((3, trick_length))for dim in range(3): omega_window[dim] =interp_omega_buffer[dim][start:end] accel_window[dim] =interp_accel_buffer[dim][start:end] trick = identifyTrick(omega_window,accel_window) print “trick_length = ” + str(trick_length) print“trick_start = ” + str(trick_start) print “trick_end = ” +str(trick_start + trick_length) print “averages:” printgetAverages(buffers) print “ranges:” print getRanges(buffers) ifplot_windows: flushBluetoothBuffer( )plotBuffers(interpolateBuffers(offset_buffers), start = trick_start, end= trick_start + trick_length) if save_buffers: saveBuffers(buffers,trick) flushBluetoothBuffer( ) print “flushing...” IMU_Socket.send(“1”)buffers = fillBuffers(IMU_Socket, bufsize) print “done.” print “ ” if_(——)name_(——) == ‘_(——)main_(——)’: try: main( ) finally:IMU_Socket.send(“0”) IMU_Socket.close( )

Alternative

Alternative embodiments of the invention utilize other techniques fortrick identification. One such alternate embodiment bases suchidentification on measuring the changes in the angular orientation ofthe skateboard 20 along each of the axes X, Y, Z from the start to theend of the trick. Those changes, denoted Θ_(x), Θ_(y), and Θ_(z),respectively, are used as a look-up value for a database or tableassociated such values with the names of specific tricks.

According to this embodiment, the microprocessor 44 determines the startof a trick by monitoring an accelerometer (e.g., 40 a) to identifyvalues of acceleration of the skateboard 20 along one or more of theaxes X, Y and/or Z indicative of the start of a trick—or, alternatively,by monitoring other sensors to detect taps or signaling by the userhimself/herself that a trick is about to start. The microprocessor cansimilarly determine the end of the trick. Depending on the types ofangular motion sensors employed in unit 42, the microprocessorcontinually monitors their output while the trick is in progress (and/oralternatively, at the start and the end of the trick) in order todetermine Θ_(x), Θ_(y), and Θ_(z).

The microprocessor utilizes those values as a look-up into a table ofthe sort shown in FIG. 4 that associates such values, as noted above,with specific tricks. If a matching entry is found, i.e., a table entrybearing values of Θ_(x), Θ_(y), and Θ_(z) matching those determined fromthe sensors, the microprocessor 44 reads the trick name from that entryand uploads it and/or underlying or other sensor readings to digitaldata processor 60, logs the same to storage on-board unit 42, and/orgenerates a notification.

In some embodiments, the table shown in FIG. 4 is populated empirically,e.g., by taking and averaging values of Θ_(x), Θ_(y), and Θ_(z) measuredon skateboard 20 used by experts to perform then named tricks. In otherembodiments, the table is populated based on hypothetical calculations,modeling or otherwise.

In these an other embodiments, to account for potential errors in sensorreadings (both during use of the skateboard 20 by the experts topopulate the table and by normal users in performing tricks), the tablecan be populated, not only with values of Θ_(x), Θ_(y), and Θ_(z) thatare associated with each trick, but also with expected deviations inthose values, here, denoted σ_(x), σ_(y), σ_(z) associated,respectively. Those expected deviations can be determined empirically,based on measurements taken during expert performance, or otherwise.

In these embodiments, the table look-up referred to above can besupplemented to accommodate matching values of Θ_(x), Θ_(y), and Θ_(z)measured at “runtime” (i.e., when a normal user is performing tricks foridentification) with the table values in view of the deviations. Whenthe runtime-measured values match the Θ_(x), Θ_(y), and Θ_(z) valuesassociated with two or more tricks in the table with the deviationstaken into account, the microprocessor can resolve the potentiallyambiguity in identification by choosing the trick for which theroot-mean deviation of the runtime-measured values vs the table valuesof Θ_(x), Θ_(y), and Θ_(z) is smallest.

Some embodiments of the invention utilize additional information toresolve such ambiguities and/or to other determine which of varioustricks were performed, for example, based on additional informationindicated by one or more sensor(s) on the board (e.g., linearacceleration, direction of movement) or on the user (e.g., the user'sstance on the skateboard). In the event that an actual indication, or acombination of actual indications, are associated with more than onetrick in the table of FIG. 4, that can be reflected in the table, aswell, and the microprocessor 44 can take it into account when performingtrick identification and/or disambiguation.

Digital Data Processor

Referring back to FIG. 1, data processor 60 can comprise a dedicateddevice (e.g., a desktop or laptop computer) or it can be part amultifunction device, e.g., as in the case of a data processor that isembedded in a cell phone, personal digital assistant, or other mobiledevice (collectively, “mobile device”). In the illustrated embodiment,processor 60 is in communications coupling with the unit 42 and, moreparticularly, for example, microprocessor 44 and/or sensing devices 40,e.g., via Bluetooth, WiFi, cellular, infrared, or other wireless orwired transmission medium.

In various embodiments, the data processor 60 processes data regardingskateboard 20 and, more particularly, data from with sensors 40 a-40 dand/or the microprocessor 44 and, optionally, in some embodiments withother “nodes” (as discussed below) to perform one or more of thefollowing functions. Such processing can be performed on the digitaldata processor 60 using conventional software and data analysistechniques as adapted in accord with the teachings hereof:

-   -   process information received from unit 42, and still more        particularly, for example, microprocessor 44 and/or sensing        devices 40 to quantitatively or qualitatively characterize the        motion, location and/or other characteristics of the skateboard;    -   identify tricks performed on the skateboard 20 (or other object)        (e.g., in embodiments where such identification is not performed        by microprocessor 44 and/or in which auxiliary processing by the        data processor can facilitate and/or confirm such        identification);    -   log identified tricks and/or characteristics of the skateboard        and/or its environment measured by the sensing devices 40;    -   associate identified tricks and/or characteristics of the        skateboard and/or its environment measured by the sensing        devices 40 with information identifying the skateboard 20, its        user, the time/place of trick performance and/or characteristic        measurement, and/or multimedia content (e.g., images, video, or        audio clip) associated with any of the foregoing or otherwise;    -   generate displays, visual notifications and/or audio        notifications regarding identified tricks, measured        characteristics, and/or associated information on an LED and/or        display panel (not shown) and/or audio output of associated with        the data processor 60 and/or the skateboard 20; and/or    -   exchange information regarding identified tricks, measured        characteristics, and/or associated information with central        servers, central stores, other nodes, the Internet and/or        otherwise.

By way of non-limiting example, in one embodiment, the digital dataprocessor 60 can supplement trick identification (if any) performed bythe microprocessor by analyzing other aspects of skateboard use, e.g.,maximum height attained during a skateboard session, longest time in theair during the session, fastest speed attained, longest sustained run,and so forth. It can perform one or more of the aforementioned functionswith the results of these analyses, as well or instead. Of course, insome embodiments these analyses can be performed by the microprocessor44 instead or in addition.

In some embodiments, a given data processor 60 (e.g., a cell phone, PDAor computer) may be capable of operation with multiple differentskateboards (or other objects) 20, concurrently or one-at-a-time. Thiscan facilitate, for example, the use of a cell phone 60 with multipleobjects (e.g., skateboards, surf boards, etc.) equipped in accord withthe tachings and owned by the given user or, conversely, by multiplesuch objects owned by different persons (e.g., friends, competitors,etc.).

Moreover, in some embodiments, the microprocessor 44, unit 42 and/orcell phone (or digital data processor) 60 are equipped to communicate toone another and/or to central servers, central stores, and/or othernodes, the Internet, or otherwise via a mesh network, established amongthemselves or otherwise. This can, for example, facilitate communicationamong skateboards 20 in the same recreational park, e.g., when only afew of the users have cell phones.

Construction

Referring back to FIG. 1, data processor 60 can comprise a dedicateddevice (e.g., a desktop or laptop computer) or it can be part of amultifunction device, e.g., as in the case of a data processor that isembedded in a cell phone, personal digital assistant, or other mobiledevice (collectively, “mobile device”).

It includes one or more modules for the receiving, transmitting,processing, storage, generation and/or display of data of the typeconventionally associated with such dedicated and/or multifunctiondevices, all as adapted in accord with the teachings hereof. Forexample, the data processor 60 can include a store that is configuredand operated utilizing conventional database techniques (as adaptedaccord with the teachings hereof) to record information regardingidentified tricks and/or characteristics of the skateboard and/or itsenvironment measured by the sensing devices 40, e.g., for later accessby the skateboard user or others.

It can also include an audio output device or module that generates anaudio output (e.g., a song and/or a sound or series of sounds), e.g., inresponse to information received from the skateboard and/or the othernodes (if any), in response to user prompts, or otherwise.

As shown in the drawing, data processor 60 is in communications couplingwith the skateboard 20 and, more particularly, unit 42, and still moreparticularly, for example, microprocessor 44 and/or sensing devices 40,e.g., via Bluetooth, WiFi, cellular, infrared, or other wirelesslink—though, in other embodiments such coupling may be wired, instead orin addition.

In an exemplary embodiment, the digital data processor 60 is a smartphone having a communication module capable of receiving the wirelesscommunication signals generated by the sensing device 40. The smartphone can be held, for example, in a skateboarder's pocket withintransmission range of the sensing device 40. Alternatively, the digitaldata processor 60 can be stationary when the skateboard 20 is not. Forexample, the digital data processor 60 (whether a smartphone, laptop orotherwise) that is positioned in proximity to a ramp or jump on whichtricks and/or other characteristics of the skateboard will bedetermined. In some embodiments, the sensing device 40 can buffer orstore information for transmission to the digital data processor 60until the two devices are brought within range or otherwise placed incommunications coupling (e.g., via wired connection and/or usercommand).

Associated Information

As noted above, the digital data processor can associate identifiedtricks and/or characteristics of the skateboard and/or its environmentmeasured by the sensing devices 40 with information identifying theskateboard 20, its user, the time/place of trick performance and/orcharacteristic measurement, and/or multimedia content (e.g., images,video, or audio clip) associated with any of the foregoing or otherwise.

Thus, for example, a suitably equipped digital data processor 60, e.g.,a smartphone, can take GPS readings using its own onboard sensor (orotherwise) and can display or log that along with identified tricksand/or characteristics of the skateboard and/or its environment measuredby the sensing devices 40. It can likewise use those GPS readings forvisual notifications and/or audio notifications regarding identifiedtricks and measured characteristics, and/or supply those readings tocentral servers, central stores, and/or other nodes. Furthermore, it canuse those GPS readings in connection with processing informationreceived from unit 42, and still more particularly, for example,microprocessor 44 and/or sensing devices 40.

The foregoing is likewise true of time and/or date information gatheredby the digital data processor 60 at the time it receives trickinformation and other characteristics from the unit 42, and still moreparticularly, for example, from microprocessor 44 and/or sensing devices40. In a preferred embodiment where the digital data processor 60 is,for example, a smartphone carried in the pocket of the skateboard user,the foregoing provides a convenient way to associate location, timeand/or date information with the tricks and/or characteristics of theskateboard and/or its environment.

By way of further example, digital data processor 60 can also include akeypad, a camera, or a microphone or other peripherals capable ofgenerating multimedia content (e.g., text, images, video, and/or audio).Indeed, a suitably equipped data processor 60, can download or acquiresuch content from other devices and/or from the Internet. Regardless, asabove, the digital data processor 60 can display or log that contentalong with identified tricks and/or characteristics of the skateboardand/or its environment; can use that multimedia content in visualnotifications and/or audio notifications regarding identified tricks andmeasured characteristics; can supply that content to central servers,central stores, and/or other nodes; and/or can use that content inconnection with processing information received from unit 42, and stillmore particularly, for example, from microprocessor 44 and/or sensingdevices 40.

In the foregoing ways, the digital data processor 60 can associatemultimedia content with identified tricks and/or other characteristicsof skateboard and/or its environment. In an embodiment where the digitaldata processor 60 is, for example, a smartphone carried in the pocket ofthe skateboard user, the foregoing provides a convenient way toassociate pictures of a skateboard ramp, a video of a jump, or a songthat was played while performing a trick, etc., with particular feats bythe skateboard user.

In some embodiments, the digital data processor “automatically”associates such content with identified tricks and/or othercharacteristics—e.g., as where it associates a pre-stored photo of theuser and/or his/her skateboard (or other equipment) and/or apre-selected song with the identified trick and/or other characteristicsfor display, logging, notification, or supply to other servers, storesand/or nodes.

Audio Output

In one embodiment, the digital data processor 60 includes an audiooutput module 60 a that generates audio output, e.g., a song selected bythe user, a pre-recorded sound, a synthesized sound, or otherwise. Themodule 60 a may comprise one or more speakers that are embedded withmicroprocessor 44, e.g., on the skateboard 20, and/or that are housedseparately from it, albeit coupled for communications via Bluetooth,infrared or other wireless or wired transmission medium. Alternatively,or in addition, module 60 a can be part mobile device that is incommunications coupling (e.g., via Bluetooth, WiFi, cellular, infrared,or other wireless or wired transmission medium, or otherwise) with thedigital data processor 60. Regardless, the module 60 a may arranged formono playback, stereo playback (e.g., as via the headphones illustratedin FIG. 1) or otherwise.

Audio output may be activated by the user and its volume, duration orother characteristics controlled by way of a switch (not shown) orotherwise. Alternatively, or in addition, the audio output can be asound or series of sounds generated in response to data received by thedigital data processor 60 from the sensing device 40 regarding a trickor characteristic of the skateboard 20.

For instance, as the skateboard user performs a specific trick or theskateboard attains a certain characteristic (e.g., a pre-determinedspeed, height, etc.), the digital data processor 60 can control theaudio output device to generate a sound or series of sounds to alert theuser. For example, when unit 42 detects that the user is performing an“ollie,” the digital data processor 60 can cause the audio output deviceto generate a loud crashing noise when the skateboarder kicks down onthe back edge of the skateboard. By way of another non-limiting example,the digital data processor can cause the audio output device to generatea “whirling” sound when the skateboard 20 is being spun.

In another exemplary embodiment, digital data processor can cause theaudio output device to generate an audio output (e.g., a song with agiven rhythm) that is manipulated based on the characteristic(s) of theskateboard 20. By way of non-limiting example, the playback of the songcan be sped up or slowed down in response to the speeding up or slowingdown, respectively, of the skateboard 20. An increase in height (e.g., ajump), for example, of the skateboard 20 can amplify the high tones ofthe audio output, while a decrease in height (e.g., a landing) canamplify the low tones. Variations in the audio output can also promptthe user (e.g., skateboarder), for example, to perform a certain task(e.g., speed up) or alert the user to attempt a new action.

In this way, the digital data processor 60 can be used as a learningtool. In reference to a certain action desired to be performed by anskateboard, for example, the audio output device can generate audiooutput (e.g., a signal) to alert the user to perform a sequence ofactions, or perform the next in a sequence of actions, in order toattain the desired characteristic(s).

In addition to, or in the alternative to, outputting the audio output inreal-time, the digital data processor 60 can associate an audio signalwith identified tricks and/or characteristics of the skateboard and/orits environment measured by the sensing devices 40. If the user (oranother) subsequently accesses a stored record of that trick or othercharacteristic, the digital data processor 60 or other device can replaythe associated audio signal—e.g., allowing the user or another to relivethe occasion.

Graphical Display

In one embodiment, the digital data processor 60 is coupled to an LCD orother display for presentation of information regarding identifiedtricks, characteristics of the skateboard and/or its environment, and/orassociated information of the type discussed above. This can include,for example, display of tables, graphs, scores, virtual images (or aseries of images), video, plots, or other graphic or textualrepresentations of the trick, other characteristic(s) of the skateboard20 and/or associated information. In some embodiments, the digital dataprocessor can be responsive to user input to manipulate the display,e.g., zoom, standardize, filter, and so forth.

The digital data processor 60 can drive the LCD or other display topresent multimedia content associated with identified tricks and/orcharacteristics of the skateboard, for example. This can be, forexample, a photograph or video of the particular trick or motion beingperformed. Alternatively or in addition, it can be a virtual snapshot orvideo of the skateboard 20 as it performs, for example, a particularmotion or trick. As will be appreciated by the skilled artisan, thevirtual representation of the kinetic information can be generated bythe digital data processor 60 in accord with known methods andalgorithms, adapted in view of the teachings herein.

By way of non-limiting example, processor 60 drives the display torender a virtual display of skateboard 20 in three-dimensions based onthe data generated by the sensing device 40. The display interface 62 ecan be configured such that the virtual display of the skateboard 20 canbe repositioned in virtual space (e.g. rotated) by user interaction.Moreover, in some embodiments, the processor 60 drives the display tooverlay renderings of two or more iterations of a trick, based on thedata generated by the sensing device 40, to make it easy to seevariation.

In one embodiment, the user of the primary digital data processor 60 cancontrol the frame rate and virtual camera angle of the virtual displayof the skateboard 20 such that the user can view the skateboard 20 as itperformed a particular action to see, for example, how the object 20moved over time. Panda-3D, an open source three-dimensional game engineis an example of suitable software for use in accord with the teachingsherein.

Further, if the physical location at which the action was performed isknown, the processor 60 can drive the display to model that location andto overlay on it a display of the skateboard in motion, based on thedata generated by the sensing device 40.

MultiNodal System

A system 10 of the type shown in FIG. 1 and described above can form one“node” in a larger system that includes, in addition to system 10, oneor more other such systems. The respective microprocessors 44 and/ordigital data processors 60 of those systems may communicate with withone another on a peer-to-peer basis. Alternatively, or in addition,those systems may be coupled to a central store for logging ofidentified tricks, skateboard characteristics and/or associatedinformation generated by the systems 10. Moreover, they may be coupledto a central server that facilitates the exchange of such tricks,characteristics and/or associated information between the nodes, e.g.,in support of a social network, to facilitate competitions or otherwise,as discussed by way of example in incorporated-by-reference PCTApplication No. PCT/US11/46423, filed Aug. 3, 2011, and published as WO2012/018914 on Feb. 9, 2012, entitled “Digital Data Processing SystemsAnd Methods For Skateboarding and Other Social Sporting Activities,” andU.S. application Ser. No. 13/197,429, filed Aug. 3, 2011, and publishedas US-2012-0116714-A1 on May 10, 2012, entitled “Digital Data ProcessingSystems and Methods for Skateboarding and Other Social SportingActivities,” both of which PCT and US applications claim the benefit ofpriority of U.S. Patent Application Ser. No. 61/370,439, filed Aug. 3,2010, U.S. Patent Application Ser. No. 61/371,161, filed Aug. 5, 2010,and U.S. Patent Application Ser. No. 61/386,207, filed Sep. 24, 2010.Reference is had in this particular regard and by way of non-limitingexample, to the system 10′ shown in FIG. 4 of those respectiveapplications and discussed in the accompanying text.

CONCLUSION

Described above are methods and system meeting the objects and goals settherefore. Those skilled in the art will appreciate that the embodimentsshown in the drawings and described in the accompanying text are merelyexamples of the invention and that other embodiments, incorporatingmodifications and changes therein and including combinations offoregoing embodiments, fall within the scope of the invention.

Thus, for example, although the figures and corresponding text hereofare principally directed to embodiments employing skateboards, theteachings hereof may be utilized for identifying other feats of motionof the user alone or in connection with other objects. An enumeration ofexample such objects is provided elsewhere herein.

1. A system for skateboarding, comprising A. a skateboard, B. one ormore sensors that are coupled to the skateboard to measures one or morecharacteristics thereof, C. a data processor that is in communicationscoupling with the one or more sensors and that identifies a trickperformed on the skateboard.
 2. The system of claim 1, wherein the dataprocessor identifies the trick based, at least in part, oncorrespondence between characteristics of the motion measured by the oneor more sensors and a signature associated with each of one or moretricks.
 3. The system of claim 1, in which one or more of the sensorsare coupled to a user of the skateboard.
 4. The system of claim 1, inwhich one or more of the sensors is gyroscopic and/or otherwise measuresrotation of the skateboard and/or the user thereof.
 5. The system ofclaim 1, in which on or more of the sensors measure rotation around atleast two axes of the skateboard.
 6. The system of claim 1, in which onor more of the sensors measure rotation around at least three axes ofthe skateboard.
 7. The system of claim 1, in which one or more of thesensors are any of accelerometers, magnetometers, global positioningsensors, and strain sensors.
 8. The system of claim 1, in which one ormore of the sensors are capable of measuring any of speed, acceleration,jerk, yaw, pitch, and roll of the skateboard and/or the user thereof. 9.The system of claim 1, wherein the data processor is coupled to theskateboard and/or the user thereof.
 10. The system of claim 1, whereinthe data processor comprises an add-on (i.e., is retrofitted) to theskateboard.
 11. The system of claim 1, wherein the data processor isintegral to the skateboard.
 12. The system of claim 1, wherein the dataprocessor is any of a clip-on, wearable, pocketable, or carry-alongdevice.
 13. The system of claim 1, in which the data processor isdisposed remotely from the skateboard.
 14. The system of claim 13, inwhich the data processor is comprises part a multifunction device. 15.The system of claim 14, in which the multifunction device is any of acell phone, personal digital assistant, or other mobile device.
 16. Thesystem of claim 15, in which the digital data processor is coupled forwireless communications with one or more of the sensors.
 17. The systemof claim 16, wherein the digital data processor any of logs and/ordisplays measurements received from the sensor. 18-22. (canceled)
 23. Amethod for skateboarding, comprising A. measuring one or morecharacteristics of motion of a skateboard with one or more sensors, B.with a data processor that is in communications coupling with the one ormore sensors, identifying a trick performed on the skateboard. C. wherethe identifying step includes finding a correspondence betweencharacteristics of the motion measured by the one or more sensors and asignature associated with each of one or more tricks.
 24. A system forsporting activities, comprising A. an object, B. one or more sensorsthat are coupled to the object to measures one or more characteristicsthereof, C. a data processor that is in communications coupling with theone or more sensors and that identifies a trick performed with theobject. 25-46. (canceled)